1
|
|
|
import {MigrationInterface, QueryRunner} from "typeorm"; |
2
|
|
|
|
3
|
|
|
export class Invoice1606162170438 implements MigrationInterface { |
4
|
|
|
name = 'Invoice1606162170438' |
5
|
|
|
|
6
|
|
|
public async up(queryRunner: QueryRunner): Promise<void> { |
7
|
|
|
await queryRunner.query(`CREATE TABLE "invoice_item" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "title" character varying NOT NULL, "quantity" integer NOT NULL, "amount" integer NOT NULL, "discount" integer DEFAULT 0, "invoiceId" uuid NOT NULL, CONSTRAINT "PK_621317346abdf61295516f3cb76" PRIMARY KEY ("id"))`); |
8
|
|
|
await queryRunner.query(`CREATE TYPE "invoice_status_enum" AS ENUM('draft', 'sent', 'payed', 'canceled')`); |
9
|
|
|
await queryRunner.query(`CREATE TYPE "invoice_unit_enum" AS ENUM('day', 'hour')`); |
10
|
|
|
await queryRunner.query(`CREATE TABLE "invoice" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "status" "invoice_status_enum" NOT NULL, "unit" "invoice_unit_enum" NOT NULL, "invoiceId" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, "expiryDate" TIMESTAMP NOT NULL, "ownerId" uuid NOT NULL, "quoteId" uuid, "projectId" uuid NOT NULL, CONSTRAINT "UQ_c7e255ecd0c1a5ba5cb11e959ae" UNIQUE ("invoiceId"), CONSTRAINT "PK_15d25c200d9bcd8a33f698daf18" PRIMARY KEY ("id"))`); |
11
|
|
|
await queryRunner.query(`CREATE TYPE "project_invoiceunit_enum" AS ENUM('day', 'hour')`); |
12
|
|
|
await queryRunner.query(`ALTER TABLE "project" ADD "invoiceUnit" "project_invoiceunit_enum" NOT NULL`); |
13
|
|
|
await queryRunner.query(`ALTER TABLE "invoice_item" ADD CONSTRAINT "FK_553d5aac210d22fdca5c8d48ead" FOREIGN KEY ("invoiceId") REFERENCES "invoice"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`); |
14
|
|
|
await queryRunner.query(`ALTER TABLE "invoice" ADD CONSTRAINT "FK_9909d4616f166cc7d6107553510" FOREIGN KEY ("ownerId") REFERENCES "user"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`); |
15
|
|
|
await queryRunner.query(`ALTER TABLE "invoice" ADD CONSTRAINT "FK_21b159910b14c6b2b5e944c969a" FOREIGN KEY ("quoteId") REFERENCES "quote"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`); |
16
|
|
|
await queryRunner.query(`ALTER TABLE "invoice" ADD CONSTRAINT "FK_eca8013d9719930683f74ae7e10" FOREIGN KEY ("projectId") REFERENCES "project"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`); |
17
|
|
|
} |
18
|
|
|
|
19
|
|
|
public async down(queryRunner: QueryRunner): Promise<void> { |
20
|
|
|
await queryRunner.query(`ALTER TABLE "invoice" DROP CONSTRAINT "FK_eca8013d9719930683f74ae7e10"`); |
21
|
|
|
await queryRunner.query(`ALTER TABLE "invoice" DROP CONSTRAINT "FK_21b159910b14c6b2b5e944c969a"`); |
22
|
|
|
await queryRunner.query(`ALTER TABLE "invoice" DROP CONSTRAINT "FK_9909d4616f166cc7d6107553510"`); |
23
|
|
|
await queryRunner.query(`ALTER TABLE "invoice_item" DROP CONSTRAINT "FK_553d5aac210d22fdca5c8d48ead"`); |
24
|
|
|
await queryRunner.query(`ALTER TABLE "project" DROP COLUMN "invoiceUnit"`); |
25
|
|
|
await queryRunner.query(`DROP TYPE "project_invoiceunit_enum"`); |
26
|
|
|
await queryRunner.query(`DROP TABLE "invoice"`); |
27
|
|
|
await queryRunner.query(`DROP TYPE "invoice_unit_enum"`); |
28
|
|
|
await queryRunner.query(`DROP TYPE "invoice_status_enum"`); |
29
|
|
|
await queryRunner.query(`DROP TABLE "invoice_item"`); |
30
|
|
|
} |
31
|
|
|
|
32
|
|
|
} |
33
|
|
|
|